package com.kaifamiao.enca;

public class Student {

    // 字段应该尽可能私有
    private String name;
    private char gender;
    private int age;

    // setter: 用于为私有的实例变量赋值 (setter也被称作设值器)
    // setter方法名称是 set + 字段名称(首字母大写)
    public void setName( String name ){
        // 若参数名称与实例变量名称相同，则可以通过 "this.实例变量名" 来使用实例变量
        // 等号之前的 "this.name" 表示当前 对象 中的 实例变量
        // 等号之后的 "name" 表示当前方法的参数名称
        this.name = name ;
    }

    public void setGender( char gender ) {
        switch ( gender ) {
            case '男':
            case '女':
            case 'M':
            case 'F':
                this.gender = gender;
                break;
            default:
                throw new IllegalArgumentException("非法参数");
        }
    }

    public void setAge( int age ) {
        if( age < 0 || age > 150 ) {
            throw new IllegalArgumentException("非法年龄");
        }
        this.age = age;
    }

    // getter: 用于获取私有的实例变量的值 (getter也被称作取值器)
    // getter方法名称是 get + 字段名称(首字母大写)
    public String getName(){
        // 返回相应的实例变量的值
        return this.name; // 此处 this 可以省略
    }

    public char getGender(){
        return this.gender;
    }

    public int getAge(){
        return this.age;
    }

}
